﻿

#include "zyAnimateBox.h"


DarkMoonUI::zyAnimateBox::zyAnimateBox()
{
	SetMember(L"this", (LONG_PTR)this);
	m_obj->setChildWndProc(zyAnimateBox_ChildWndProc);
}
DarkMoonUI::zyAnimateBox::~zyAnimateBox()
{

}
LRESULT WINAPI DarkMoonUI::zyAnimateBox::zyAnimateBox_ChildWndProc(zyObject* obj, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, BOOL* bHandle)
{
	if (message == WM_COMMAND) {
		short id = LOWORD(wParam);// & 65535); //LOWORD
		int code = HIWORD(wParam);
		if (code == ACN_START) {
			TRegEvent* evtPtr = (TRegEvent*)obj->getRegEvent(L"OnStart");
			if (evtPtr != nullptr) {
				evtPtr->handler<int>(lParam, (int)id);
				*bHandle = true;
				return 0;
			}
		}
		else if (code == ACN_STOP) {
			TRegEvent* evtPtr = (TRegEvent*)obj->getRegEvent(L"OnStop");
			if (evtPtr != nullptr) {
				evtPtr->handler<int>(lParam, (int)id);
				*bHandle = true;
				return 0;
			}
		}
	}
	return zyCtrol::zyCtrol_ChildWndProc(obj, hWnd, message, wParam, lParam, bHandle);
}

BOOL DarkMoonUI::zyAnimateBox::创建(HWND 参数_父窗口, const std::wstring& 参数_标题, POINT 参数_位置, POINT 参数_尺寸, int 参数_ID, int 参数_窗口风格, int 参数_扩展风格)
{
	if (参数_窗口风格 == 0)
		参数_窗口风格 = ACS_CENTER | ACS_TRANSPARENT;
	if (参数_ID == NULL)
		参数_ID = 黑月默认ID();

	return _CreateCtrol(参数_父窗口, 参数_标题, 参数_位置, 参数_尺寸, 参数_ID, 参数_窗口风格 , 参数_扩展风格, L"SysAnimate32");
}

BOOL DarkMoonUI::zyAnimateBox::创建(zyWindow& 参数_父窗口, const std::wstring& 参数_标题, POINT 参数_位置, POINT 参数_尺寸, int 参数_ID, int 参数_窗口风格, int 参数_扩展风格)
{
	if (参数_窗口风格 == 0)
		参数_窗口风格 = ACS_CENTER | ACS_TRANSPARENT;
	if (参数_ID == NULL)
		参数_ID = 黑月默认ID();

	return _CreateCtrol(参数_父窗口.getHwnd(), 参数_标题, 参数_位置, 参数_尺寸, 参数_ID, 参数_窗口风格 , 参数_扩展风格, L"SysAnimate32");
}
bool DarkMoonUI::zyAnimateBox::播放(int 参数_播放次数) {
	return sendMsg(ACM_PLAY, 参数_播放次数, -1) != 0;
}
bool DarkMoonUI::zyAnimateBox::打开(const std::wstring& 参数_文件名) {
	return sendMsg(ACM_OPENW, 0, (LPARAM)参数_文件名.c_str()) != 0;
}